<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	template="/template/Layout.xhtml">


	<ui:define name="content">
	
	<f:metadata>
		<f:event type="preRenderView" listener="#{loginController.testeSessaoAdm}"/> 
	</f:metadata>
	
		<p:panel id="prjHeader" header="Projeto">
			<h:outputText id="prjId"
				value="#{projetoController.projetoSelecionado.nome}" />
		</p:panel>

		<p:tabView id="tbvGerenciaDeProjeto">
			<p:tab title="Dados Projeto">

				<h:form id="formDadosProjeto">
					<h:panelGrid columns="2" cellpadding="5">

						<h:outputText value="Nome: " />
						<p:inputText id="prjNome"
							value="#{projetoController.projetoSelecionado.nome}" />

						<h:outputLabel value="Cliente" />
						<p:selectOneMenu
							value="#{projetoController.projetoSelecionado.cliente}"
							converter="clienteConverter" label="Cliente" 
							filter="true" style="width:150px;">
							<f:selectItem  noSelectionOption="true"/>
							<f:selectItems value="#{projetoController.todosClientes}"
								var="pessoa" itemValue="#{pessoa}" itemLabel="#{pessoa.login}"  />
						</p:selectOneMenu>

						<h:outputText value="Desenvolvedores: " />
						<p:selectCheckboxMenu
							value="#{projetoController.projeto.listaDesenvolvedores}"
							label="Defina os desenvolvedores" filter="true"
							filterText="Filter" filterMatchMode="startsWith"
							panelStyle="width:220px" converter="desenvolvedorConverter">
							<f:selectItems value="#{projetoController.todosDesenvolvedores}"
								var="pessoa" itemValue="#{pessoa}" itemLabel="#{pessoa.login}" />
						</p:selectCheckboxMenu>
						

						<h:outputLabel value="Status" />
						<p:selectOneMenu
							value="#{projetoController.projetoSelecionado.status}"
							label="Defina o status" style="width:150px;">
							<f:selectItem  noSelectionOption="true"
								style="width:150px;" />
							<f:selectItem itemLabel="Não Iniciado" itemValue="Não Iniciado" />
							<f:selectItem itemLabel="Em Desenvolvimento"
								itemValue="Em Desenvolvimento" />
							<f:selectItem itemLabel="Concluído" itemValue="Concluído" />
						</p:selectOneMenu>

					</h:panelGrid>
					
					<p:growl id="grow01" showDetail="true" />

					<p:commandButton value="Alterar Projeto"
						action="#{projetoController.alterar}" image="ui-icon ui-icon-disk"
						process="@form" update="grow01">
					</p:commandButton>
				</h:form>


			</p:tab>

			<p:tab title="BackLog">


				<p:fieldset title="Novo requisito">

					<h:form prependId="false" id="formTask">
						<p:growl id="msg0" />
						<h:panelGrid columns="2" cellpadding="10" styleClass="panelGrid"
							id="grid0">
							<h:outputLabel />

							<h:inputHidden id="idTarefa"
								value="#{tarefaController.tarefa.id_tarefa}" />

							<h:outputLabel for="nomeTarefa" value="Nome.:" />

							<p:inputText id="nomeTarefa" size="40"
								value="#{tarefaController.tarefa.nome}"
								required="true"
								requiredMessage="O Campo Nome é Obrigatório!">
							</p:inputText>

							<h:outputLabel value="Desenvolvedor" />
							<p:selectOneMenu value="#{tarefaController.tarefa.desenvolvedor}"
								converter="desenvolvedorConverter" label="Desenvolvedor"
								style="width:150px;" filter="true">
								<f:selectItem noSelectionOption="true"  />
								<f:selectItems value="#{projetoController.todosDesenvolvedores}"
									var="pessoa" itemValue="#{pessoa}" itemLabel="#{pessoa.login}" />
							</p:selectOneMenu>

							<h:outputText value="Prioridade:" />
							<p:rating value="#{tarefaController.tarefa.prioridade}" />

							<h:outputText value="Dificuldade:" />
							<h:panelGrid columns="1" style="margin-bottom:10px">
								<p:inputText id="txtDificuldade"
									value="#{tarefaController.tarefa.dificuldade}" />
								<p:slider for="txtDificuldade" step="10" />
							</h:panelGrid>

							<h:outputLabel for="spinnerStep" value="Tempo de Execução: " />

							<p:spinner id="spinnerStep"
								value="#{tarefaController.tarefa.tempo_execucao}"
								stepFactor="0.5" prefix="Horas: " min="0" />

							<p:panel>
								<p:commandButton value="Salvar"
									action="#{tarefaController.salvar}"
									image="ui-icon ui-icon-disk"
									actionListener="#{tarefaController.setProj}"
									update=":tbvGerenciaDeProjeto:formTask :tbvGerenciaDeProjeto:formListaRequisitos :tbvGerenciaDeProjeto:taskBoardForm">
									<!--   <f:attribute name="projeto" value="#{projetoController.projetoSelecionado}" />-->
								</p:commandButton>

								<p:commandButton value="Cancelar"
									actionListener="#{tarefaController.clear}"
									image="ui-icon ui-icon-close"
									update=":tbvGerenciaDeProjeto:formTask">
								</p:commandButton>
							</p:panel>
						</h:panelGrid>
					</h:form>

				</p:fieldset>


				<p:fieldset title="Requisitos">

					<h:form id="formListaRequisitos">

						<p:dataGrid var="tarefa"
							value="#{tarefaController.tarefaPorProjeto}" columns="3"
							rows="12" paginator="true"
							paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
							rowsPerPageTemplate="9,12,15">

							<p:panel header="#{tarefa.nome}" style="text-align:center">


								<h:panelGrid columns="3" style="width:100%">

									<p:commandButton update=":tbvGerenciaDeProjeto:dialog"
										icon="ui-icon-pencil" title="View"
										oncomplete="PF('dlgDadostarefa').show();">
										<f:attribute name="tarefaSelecionada" value="#{tarefa}" />
										<f:setPropertyActionListener value="#{tarefa}"
											target="#{tarefaController.tarefaSelecionada}" />
									</p:commandButton>

									<p:growl id="grow" showDetail="true" />

									<p:commandButton icon="ui-icon-trash"
										actionListener="#{tarefaController.deletar}" update=":tbvGerenciaDeProjeto:formListaRequisitos, :tbvGerenciaDeProjeto:taskBoardForm" >
										<f:attribute name="tarefaSelecionada" value="#{tarefa}" />
										<p:confirm header="Confirmação"
											message="Deseja realmente excluir esta tarefa?"
											icon="ui-icon-alert" update="grow" />

										<p:confirmDialog global="true" showEffect="fade"
											hideEffect="explode">
											<p:commandButton value="Sim" type="button"
												styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
											<p:commandButton value="Não" type="button"
												styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
										</p:confirmDialog>
									</p:commandButton>
								</h:panelGrid>
							</p:panel>

						</p:dataGrid>
					</h:form>
					<p:dialog id="dialog" widgetVar="dlgDadostarefa" showEffect="clip"
						hideEffect="clip" modal="true" appendTo="@(body)" width="600"
						height="370" >

						<h:form id="formDialog">
							<p:outputPanel id="detail" style="text-align:center;"
								layout="block">

								<h:panelGrid columns="2" cellpadding="5">

									<h:outputText value="Nome: " />
									<p:inputText id="trfNome"
										value="#{tarefaController.tarefaSelecionada.nome}" />

									<h:outputLabel value="Desenvolvedor" />
									<p:selectOneMenu
										value="#{tarefaController.tarefaSelecionada.desenvolvedor}"
										converter="desenvolvedorConverter" label="Desenvolvedor">
										<f:selectItem  noSelectionOption="true" />
										<f:selectItems
											value="#{projetoController.todosDesenvolvedores}"
											var="pessoa" itemValue="#{pessoa}"
											itemLabel="#{pessoa.login}" />
									</p:selectOneMenu>

									<h:outputText value="Prioridade:" />
									<p:rating
										value="#{tarefaController.tarefaSelecionada.prioridade}" />

									<h:outputText value="Dificuldade:" />
									<h:panelGrid columns="1" style="margin-bottom:10px">
										<p:inputText id="txtDificuldade"
											value="#{tarefaController.tarefaSelecionada.dificuldade}" />
										<p:slider for="txtDificuldade" step="10" />
									</h:panelGrid>

									<h:outputLabel for="spinnerStep" value="Tempo de Execução: " />
									<p:spinner id="spinnerStep"
										value="#{tarefaController.tarefaSelecionada.tempo_execucao}"
										stepFactor="0.5" prefix="Horas: " min="0" />

								</h:panelGrid>
								<p:commandButton value="Alterar Dados" image="ui-icon-check"
									action="#{tarefaController.atualizarDados}"
									update=":tbvGerenciaDeProjeto:formListaRequisitos"
									process="@form" />

							</p:outputPanel>
							
							
							
							
							<p:dataTable var="tarefa" value="#{tarefaController.dadosTarefaDev}">
								
								
								<p:column headerText="Desenvolvedor">
									<h:outputText value="#{tarefa.devNome}" />
								</p:column>
								
								<p:column headerText="Tarefa">
									<h:outputText value="#{tarefa.tarefaNome}" />
								</p:column>
								
								<p:column headerText="Prioridade">
									<p:rating value="#{tarefa.prioridade}" readonly="true"/>
								</p:column>
								
								<p:column headerText="Dificuldade">
									<h:outputText value="#{tarefa.dificuldade}" />
								</p:column>
								
								<p:column headerText="Tempo de Execução">
									<h:outputText value="#{tarefa.tempo_execucao}" />
								</p:column>
							</p:dataTable>

						</h:form>



					</p:dialog>
				</p:fieldset>



			</p:tab>

			<p:tab title="TaskBoard">
				<h:form id="taskBoardForm">
					<h:panelGrid columns="3" styleClass="panelGrid" id="gridMain">
						<p:fieldset id="todoColumn" legend="TO DO">

							<p:outputPanel id="dropAreaTodo">

								<p:dataGrid id="todoGrid" var="tarefa"
									value="#{taskBoardController.tarefasTodo}" columns="3"
									style="width:33%">

									<p:column>
										<p:panel id="pnl" header="#{tarefa.nome}"
											style="text-align:center">
											<p:draggable for="pnl" opacity="0.5" revert="true"
												handle=".ui-panel-titlebar" stack=".ui-panel" scope="doing" />
										</p:panel>
									</p:column>

								</p:dataGrid>

							</p:outputPanel>

						</p:fieldset>

						<p:fieldset id="inprocessColumn" legend="In Process">

							<p:outputPanel id="dropAreaInprocess">

								<p:dataGrid id="inprocessGrid" var="tarefa"
									value="#{taskBoardController.tarefasInprocess}" columns="3"
									style="width:33%">

									<p:column>
										<p:panel id="pnl" header="#{tarefa.nome}"
											style="text-align:center">
											<p:draggable for="pnl" revert="true"
												handle=".ui-panel-titlebar" stack=".ui-panel" scope="done" />
										</p:panel>
									</p:column>

								</p:dataGrid>

							</p:outputPanel>

						</p:fieldset>

						<p:fieldset id="doneColumn" legend="Done !">

							<p:outputPanel id="dropAreaDone">

								<p:dataGrid id="doneGrid" var="tarefa"
									value="#{taskBoardController.tarefasDone}" columns="3"
									style="width:33%">

									<p:column>
										<p:panel id="pnl" header="#{tarefa.nome}"
											style="text-align:center">
											<p:draggable for="pnl" revert="true"
												handle=".ui-panel-titlebar" stack=".ui-panel" scope="todo" />
										</p:panel>
									</p:column>

								</p:dataGrid>

							</p:outputPanel>

						</p:fieldset>

						<p:droppable for="dropAreaTodo" tolerance="touch"
							activeStyleClass="ui-state-highlight" datasource="doneGrid"
							scope="todo">
							<p:ajax listener="#{taskBoardController.onDropTodo}"
								update="taskBoardForm :tbvGerenciaDeProjeto:burndownForm" />
						</p:droppable>

						<p:droppable for="dropAreaInprocess" tolerance="touch"
							activeStyleClass="ui-state-highlight" datasource="todoGrid"
							scope="doing">
							<p:ajax listener="#{taskBoardController.onDropDoing}"
								update="taskBoardForm" />
						</p:droppable>

						<p:droppable for="dropAreaDone" tolerance="touch"
							activeStyleClass="ui-state-highlight" datasource="inprocessGrid"
							scope="done">
							<p:ajax listener="#{taskBoardController.onDropDone}"
								update="taskBoardForm :tbvGerenciaDeProjeto:burndownForm" />
						</p:droppable>
					</h:panelGrid>
				</h:form>

			</p:tab>
			<p:tab title="Burndown">
				<h:form id="burndownForm">
					<p:lineChart value="#{burndownController.burnDownChart}"
						legendPosition="e" zoom="true" animate="true"
						title="Burndown Chart"
						style="width:100%; height:100%; text-align:center;" />
				</h:form>

			</p:tab>
		</p:tabView>
	</ui:define>
</ui:composition>